// ****************************************************************************** 
// Copyright     :  Copyright (C) 2018, Hisilicon Technologies Co. Ltd.
// File name     :  dvpp_c_union_define.h
// Project line  :  ICT
// Department    :  ICT Processor Chipset Development Dep
// Author        :  Huawei
// Version       :  1.0
// Date          :  2017/11/13
// Description   :  The description of Ascend 310 project
// Others        :  Generated automatically by nManager V4.2 
// History       :  Huawei 2018/05/16 10:46:14 Create file
// ******************************************************************************

#ifndef __DVPP_C_UNION_DEFINE_H__
#define __DVPP_C_UNION_DEFINE_H__

/* Define the union U_VENC */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    venc : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VENC;

/* Define the union U_VPC3_REG1 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    vpc3_reg1 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VPC3_REG1;

/* Define the union U_VPC3_REG0 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    vpc3_reg0 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VPC3_REG0;

/* Define the union U_VPC2_REG1 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    vpc2_reg1 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VPC2_REG1;

/* Define the union U_VPC2_REG0 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    vpc2_reg0 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VPC2_REG0;

/* Define the union U_VPC1_REG1 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    vpc1_reg1 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VPC1_REG1;

/* Define the union U_VPC1_REG0 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    vpc1_reg0 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VPC1_REG0;

/* Define the union U_VPC0_REG1 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    vpc0_reg1 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VPC0_REG1;

/* Define the union U_VPC0_REG0 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    vpc0_reg0 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VPC0_REG0;

/* Define the union U_VDEC1 REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    vdec1 reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VDEC1 REG;

/* Define the union U_VDEC0 REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    vdec0 reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_VDEC0 REG;

/* Define the union U_JPEG_REG1 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    jpeg_reg1 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_JPEG_REG1;

/* Define the union U_JPEG_REG0 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    jpeg_reg0 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_JPEG_REG0;

/* Define the union U_PNGD5_REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    pngd5_reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_PNGD5_REG;

/* Define the union U_PNGD4_REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    pngd4_reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_PNGD4_REG;

/* Define the union U_PNGD3_REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    pngd3_reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_PNGD3_REG;

/* Define the union U_PNGD2_REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    pngd2_reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_PNGD2_REG;

/* Define the union U_PNGD1_REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    pngd1_reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_PNGD1_REG;

/* Define the union U_PNGD0_REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    pngd0_reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_PNGD0_REG;

/* Define the union U_I2C2_REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    i2c2_reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_I2C2_REG;

/* Define the union U_I2C1_REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    i2c1_reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_I2C1_REG;

/* Define the union U_SPI2_REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    spi2_reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_SPI2_REG;

/* Define the union U_SPI1_REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    spi1_reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_SPI1_REG;

/* Define the union U_SPI0_REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    spi0_reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_SPI0_REG;

/* Define the union U_GPIO3_REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    gpio3_reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_GPIO3_REG;

/* Define the union U_GPIO2_REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    gpio2_reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_GPIO2_REG;

/* Define the union U_UART1_REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    uart1_reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_UART1_REG;

/* Define the union U_MDIO_REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    mdio_reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_MDIO_REG;

/* Define the union U_IOMUX_REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    iomux_reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_IOMUX_REG;

/* Define the union U_EXMBIST0_REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    exmbist0_reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_EXMBIST0_REG;

/* Define the union U_DDRC3_REG1 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    ddrc3_reg1 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_DDRC3_REG1;

/* Define the union U_DDRC3_REG0 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    ddrc3_reg0 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_DDRC3_REG0;

/* Define the union U_DDRC2_REG1 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    ddrc2_reg1 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_DDRC2_REG1;

/* Define the union U_DDRC2_REG0 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    ddrc2_reg0 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_DDRC2_REG0;

/* Define the union U_DDRC1_REG1 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    ddrc1_reg1 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_DDRC1_REG1;

/* Define the union U_DDRC1_REG0 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    ddrc1_reg0 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_DDRC1_REG0;

/* Define the union U_DDRC0_REG1 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    ddrc0_reg1 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_DDRC0_REG1;

/* Define the union U_DDRC0_REG0 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    ddrc0_reg0 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_DDRC0_REG0;

/* Define the union U_SCHE1_REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    sche1_reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_SCHE1_REG;

/* Define the union U_SMMU1_REG3 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    smmu1_reg3 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_SMMU1_REG3;

/* Define the union U_SMMU1_REG2 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    smmu1_reg2 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_SMMU1_REG2;

/* Define the union U_SMMU1_REG1 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    smmu1_reg1 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_SMMU1_REG1;

/* Define the union U_SMMU1_REG0 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    smmu1_reg0 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_SMMU1_REG0;

/* Define the union U_SUBCTRL0_REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    subctrl0_reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_SUBCTRL0_REG;

/* Define the union U_DISP_REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    disp_reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_DISP_REG;

/* Define the union U_SCHE0_REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    sche0_reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_SCHE0_REG;

/* Define the union U_FTE_REG */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    fte_reg : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_FTE_REG;

/* Define the union U_SMMU0_REG3 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    smmu0_reg3 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_SMMU0_REG3;

/* Define the union U_SMMU0_REG2 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    smmu0_reg2 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_SMMU0_REG2;

/* Define the union U_SMMU0_REG1 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    smmu0_reg1 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_SMMU0_REG1;

/* Define the union U_SMMU0_REG0 */
typedef union
{
    /* Define the struct bits */
    struct
    {
        unsigned int    smmu0_reg0 : 40  ; /* [39:0] */
    } bits;

    /* Define an unsigned member */
    unsigned int    u32;

} U_SMMU0_REG0;


//==============================================================================
/* Define the global struct */
typedef struct
{
    volatile U_VENC         VENC         ; /* 130C00000 */
    volatile U_VPC3_REG1    VPC3_REG1    ; /* 130B70000 */
    volatile U_VPC3_REG0    VPC3_REG0    ; /* 130B60000 */
    volatile U_VPC2_REG1    VPC2_REG1    ; /* 130B50000 */
    volatile U_VPC2_REG0    VPC2_REG0    ; /* 130B40000 */
    volatile U_VPC1_REG1    VPC1_REG1    ; /* 130B30000 */
    volatile U_VPC1_REG0    VPC1_REG0    ; /* 130B20000 */
    volatile U_VPC0_REG1    VPC0_REG1    ; /* 130B10000 */
    volatile U_VPC0_REG0    VPC0_REG0    ; /* 130B00000 */
    volatile U_VDEC1 REG    VDEC1 REG    ; /* 130AB0000 */
    volatile U_VDEC0 REG    VDEC0 REG    ; /* 130AA0000 */
    volatile U_JPEG_REG1    JPEG_REG1    ; /* 130A90000 */
    volatile U_JPEG_REG0    JPEG_REG0    ; /* 130A80000 */
    volatile U_PNGD5_REG    PNGD5_REG    ; /* 130A50000 */
    volatile U_PNGD4_REG    PNGD4_REG    ; /* 130A40000 */
    volatile U_PNGD3_REG    PNGD3_REG    ; /* 130A30000 */
    volatile U_PNGD2_REG    PNGD2_REG    ; /* 130A20000 */
    volatile U_PNGD1_REG    PNGD1_REG    ; /* 130A10000 */
    volatile U_PNGD0_REG    PNGD0_REG    ; /* 130A00000 */
    volatile U_I2C2_REG     I2C2_REG     ; /* 1309D0000 */
    volatile U_I2C1_REG     I2C1_REG     ; /* 1309C0000 */
    volatile U_SPI2_REG     SPI2_REG     ; /* 1309A0000 */
    volatile U_SPI1_REG     SPI1_REG     ; /* 130990000 */
    volatile U_SPI0_REG     SPI0_REG     ; /* 130980000 */
    volatile U_GPIO3_REG    GPIO3_REG    ; /* 130950000 */
    volatile U_GPIO2_REG    GPIO2_REG    ; /* 130940000 */
    volatile U_UART1_REG    UART1_REG    ; /* 130930000 */
    volatile U_MDIO_REG     MDIO_REG     ; /* 130920000 */
    volatile U_IOMUX_REG    IOMUX_REG    ; /* 130900000 */
    volatile U_EXMBIST0_REG EXMBIST0_REG ; /* 130880000 */
    volatile U_DDRC3_REG1   DDRC3_REG1   ; /* 130870000 */
    volatile U_DDRC3_REG0   DDRC3_REG0   ; /* 130860000 */
    volatile U_DDRC2_REG1   DDRC2_REG1   ; /* 130850000 */
    volatile U_DDRC2_REG0   DDRC2_REG0   ; /* 130840000 */
    volatile U_DDRC1_REG1   DDRC1_REG1   ; /* 130830000 */
    volatile U_DDRC1_REG0   DDRC1_REG0   ; /* 130820000 */
    volatile U_DDRC0_REG1   DDRC0_REG1   ; /* 130810000 */
    volatile U_DDRC0_REG0   DDRC0_REG0   ; /* 130800000 */
    volatile U_SCHE1_REG    SCHE1_REG    ; /* 130150000 */
    volatile U_SMMU1_REG3   SMMU1_REG3   ; /* 130130000 */
    volatile U_SMMU1_REG2   SMMU1_REG2   ; /* 130120000 */
    volatile U_SMMU1_REG1   SMMU1_REG1   ; /* 130110000 */
    volatile U_SMMU1_REG0   SMMU1_REG0   ; /* 130100000 */
    volatile U_SUBCTRL0_REG SUBCTRL0_REG ; /* 130070000 */
    volatile U_DISP_REG     DISP_REG     ; /* 130060000 */
    volatile U_SCHE0_REG    SCHE0_REG    ; /* 130050000 */
    volatile U_FTE_REG      FTE_REG      ; /* 130040000 */
    volatile U_SMMU0_REG3   SMMU0_REG3   ; /* 130030000 */
    volatile U_SMMU0_REG2   SMMU0_REG2   ; /* 130020000 */
    volatile U_SMMU0_REG1   SMMU0_REG1   ; /* 130010000 */
    volatile U_SMMU0_REG0   SMMU0_REG0   ; /* 130000000 */

} S_dvpp_REGS_TYPE;

/* Declare the struct pointor of the module dvpp */
extern volatile S_dvpp_REGS_TYPE *gopdvppAllReg;

/* Declare the functions that set the member value */
int iSetVENC_venc(unsigned int uvenc);
int iSetVPC3_REG1_vpc3_reg1(unsigned int uvpc3_reg1);
int iSetVPC3_REG0_vpc3_reg0(unsigned int uvpc3_reg0);
int iSetVPC2_REG1_vpc2_reg1(unsigned int uvpc2_reg1);
int iSetVPC2_REG0_vpc2_reg0(unsigned int uvpc2_reg0);
int iSetVPC1_REG1_vpc1_reg1(unsigned int uvpc1_reg1);
int iSetVPC1_REG0_vpc1_reg0(unsigned int uvpc1_reg0);
int iSetVPC0_REG1_vpc0_reg1(unsigned int uvpc0_reg1);
int iSetVPC0_REG0_vpc0_reg0(unsigned int uvpc0_reg0);
int iSetVDEC1 REG_vdec1 reg(unsigned int uvdec1 reg);
int iSetVDEC0 REG_vdec0 reg(unsigned int uvdec0 reg);
int iSetJPEG_REG1_jpeg_reg1(unsigned int ujpeg_reg1);
int iSetJPEG_REG0_jpeg_reg0(unsigned int ujpeg_reg0);
int iSetPNGD5_REG_pngd5_reg(unsigned int upngd5_reg);
int iSetPNGD4_REG_pngd4_reg(unsigned int upngd4_reg);
int iSetPNGD3_REG_pngd3_reg(unsigned int upngd3_reg);
int iSetPNGD2_REG_pngd2_reg(unsigned int upngd2_reg);
int iSetPNGD1_REG_pngd1_reg(unsigned int upngd1_reg);
int iSetPNGD0_REG_pngd0_reg(unsigned int upngd0_reg);
int iSetI2C2_REG_i2c2_reg(unsigned int ui2c2_reg);
int iSetI2C1_REG_i2c1_reg(unsigned int ui2c1_reg);
int iSetSPI2_REG_spi2_reg(unsigned int uspi2_reg);
int iSetSPI1_REG_spi1_reg(unsigned int uspi1_reg);
int iSetSPI0_REG_spi0_reg(unsigned int uspi0_reg);
int iSetGPIO3_REG_gpio3_reg(unsigned int ugpio3_reg);
int iSetGPIO2_REG_gpio2_reg(unsigned int ugpio2_reg);
int iSetUART1_REG_uart1_reg(unsigned int uuart1_reg);
int iSetMDIO_REG_mdio_reg(unsigned int umdio_reg);
int iSetIOMUX_REG_iomux_reg(unsigned int uiomux_reg);
int iSetEXMBIST0_REG_exmbist0_reg(unsigned int uexmbist0_reg);
int iSetDDRC3_REG1_ddrc3_reg1(unsigned int uddrc3_reg1);
int iSetDDRC3_REG0_ddrc3_reg0(unsigned int uddrc3_reg0);
int iSetDDRC2_REG1_ddrc2_reg1(unsigned int uddrc2_reg1);
int iSetDDRC2_REG0_ddrc2_reg0(unsigned int uddrc2_reg0);
int iSetDDRC1_REG1_ddrc1_reg1(unsigned int uddrc1_reg1);
int iSetDDRC1_REG0_ddrc1_reg0(unsigned int uddrc1_reg0);
int iSetDDRC0_REG1_ddrc0_reg1(unsigned int uddrc0_reg1);
int iSetDDRC0_REG0_ddrc0_reg0(unsigned int uddrc0_reg0);
int iSetSCHE1_REG_sche1_reg(unsigned int usche1_reg);
int iSetSMMU1_REG3_smmu1_reg3(unsigned int usmmu1_reg3);
int iSetSMMU1_REG2_smmu1_reg2(unsigned int usmmu1_reg2);
int iSetSMMU1_REG1_smmu1_reg1(unsigned int usmmu1_reg1);
int iSetSMMU1_REG0_smmu1_reg0(unsigned int usmmu1_reg0);
int iSetSUBCTRL0_REG_subctrl0_reg(unsigned int usubctrl0_reg);
int iSetDISP_REG_disp_reg(unsigned int udisp_reg);
int iSetSCHE0_REG_sche0_reg(unsigned int usche0_reg);
int iSetFTE_REG_fte_reg(unsigned int ufte_reg);
int iSetSMMU0_REG3_smmu0_reg3(unsigned int usmmu0_reg3);
int iSetSMMU0_REG2_smmu0_reg2(unsigned int usmmu0_reg2);
int iSetSMMU0_REG1_smmu0_reg1(unsigned int usmmu0_reg1);
int iSetSMMU0_REG0_smmu0_reg0(unsigned int usmmu0_reg0);

#endif // __DVPP_C_UNION_DEFINE_H__
